# coding=utf-8
# 完成配置的信息
import logging
from redis import StrictRedis


class Config(object):
    # 项目的配置信息
    DEBUG = True
    # 为数据库添加配置/
    SQLALCHEMY_DATABASE_URI = 'mysql://root:root@127.0.0.1:3306/information'
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    # 再请求结束的时候，如果指定此配置为True 那么SQLAlchemy会自动执行一次db.session.commit
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True
    # 配置redis所需要的地址和端口信息
    REDIR_HOST = '127.0.0.1'
    REDIR_PORT = '6379'
    SECRET_KEY = "EjpNVSNQTyGi1VvWECj9TvC/+kq3oujee2kTfQUs8yCM6xX9Yjq52v54g+HVoknA"
    #     flask_session的配置信息
    SESSION_TYPE = 'redis'  # 指定session保存到redis中
    SESSION_USE_SIGNER = True  # 让cookie中的session_id被加密签名处理
    SESSION_REDIS = StrictRedis(host=REDIR_HOST, port=REDIR_PORT)  # 使用redis 实例
    PERMANENT_SESSION_LIFETIME = 86400  # session 的有效实时间 单位秒

    #     设置日志等级
    LOG_LEVEL = logging.DEBUG


class DevelpoementConfig(Config):
    # 开发者模式的配置
    DEBUG = True


class ProductionConfig(Config):
    # 生产者模式
    DEBUG = False
    # 设置日志等级 小于日志等级的将不被保存和K打印
    LOG_LEVEL = logging.WARNING


class TestingConfig(Config):
    #     单元测试环境下的配置
    DEBUG = True
    TESTING = True


# 定义字典 看使用者使用什么模式，如果有新的模式就自己重新创建
config = {
    "development": DevelpoementConfig,
    "production": ProductionConfig
}
